#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int main(int argc, char ** argv)
{
	//参数检验
	if(argc < 2)
	{
		fprintf(stderr, "arg err\n");
		exit(1);
	}

	//打开文件
	FILE * fp;
	fp = fopen(argv[1], "r");
	if(fp == NULL)
	{
		perror("fopen");
		exit(1);
	}

	char * linebuf;
	size_t linesize;
	while(1)
	{
		//设置为全自动 记得释放内存
		linebuf = NULL;	//字符串地址（若为(null, 0, fp)则自动申请内存）
		linesize = 0;	//开辟的空间的大小
		//getline获取整行,包含回车,把字符串地址和大小写入两个参数
		if(getline(&linebuf, &linesize, fp) < 0)
		{
			break;
		}
		printf("1.length:%d\n", (int)strlen(linebuf));
		printf("2.linebuf:%s", linebuf);
		printf("3.linesize:%d\n", (int)linesize);
		//释放内存
		free(linebuf);
	}
	//关闭文件
	fclose(fp);
	exit(0);
}
